package LeetCode.题库.简单;

import org.junit.Test;

/**
 * @author 挚爱之夕
 * @date 2022-03-07 - 03 - 07 - 16:05
 * @Description 实现strStr()函数
 * 给你两个字符串haystack 和 needle
 * 请你在 haystack 字符串中找出 needle 字符串出现的第一个位置（下标从 0 开始）
 * 如果不存在，则返回 -1
 * 说明：
 * 当needle是空字符串时，我们应当返回什么值呢？这是一个在面试中很好的问题。
 * 对于本题而言，当needle是空字符串时我们应当返回 0 。
 * @Version 简单
 */
public class _28匹配子串 {
    static String haystack = "hello";
    static String needle = "ll";
    @Test
    public void solve(){
        int res = strStr(haystack, needle);
        System.out.println(res);//2
    }
    /*by me 比较慢*/
    public int strStr(String haystack, String needle) {
        if(needle.length() == 0)
            return 0;
        int len = needle.length();
        //注意是小于等于，最后一个字符不包含
        for(int i = 0; i + len <= haystack.length(); i++){
            if(haystack.substring(i, i +len).equals(needle)){
                return i;
            }
        }
        return - 1;
    }
}
